# 使用官方Go镜像作为构建环境
FROM golang:1.20 as builder

# 设置工作目录
WORKDIR /app

# 复制go mod和sum文件
COPY go.mod go.sum ./

# 下载所有依赖
RUN go mod download

# 复制源代码到容器中
COPY . .

# 构建应用程序
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o c-backend ./cmd/cat-collage-backend/

# 设置执行权限，这步通常不必要，因为Go构建的二进制文件默认已有执行权限
RUN chmod +x /app/c-backend

# 使用scratch作为最小运行时容器
FROM scratch

# 从构建器容器中复制可执行文件
COPY --from=builder /app/c-backend /c-backend

# 运行端口
EXPOSE 9000

# 运行可执行文件
ENTRYPOINT ["/c-backend"]
